﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SistemaCenterQuimCentral.UI.CentralSupervisor
{
    public partial class frmGestionProveedoresS : SistemaCenterQuimCentral.UI.CentralAdministrador.frmGestionProveedoresA
    {
        //-----------ATRIBUTOS------------------------

        //------------CONSTRUCTORES-------------------
        public frmGestionProveedoresS()
        {
            InitializeComponent();

            removerControles();  //se remueve los controles heredados que no necesitamos en esta interface, por diseño no se puede

        }

        //----------ESTADOS---------------------------
        //permite redefinir en el padre.
        protected override void estEsperandoOperacion()
        {
            cargarGrillaProveedores();  //se cargan los proveedores si existieran
            cargarComboProveedores();

            if (dgvProveedores.RowCount == 0)  //si no existieran proveedores se deja en este estado
            {
                System.Windows.Forms.Control[] controlesHabilitados = { this.btnAgregar };
                System.Windows.Forms.Control[] controlesDeshabilitados = { this.dgvProveedores, this.btnEditar, this.btnProcesar, this.lblNombre, this.txtNombre, this.lblObligNombre, this.lblCuit, this.txtCuit, this.lblTipo, this.cboTipo, this.lblTel1, this.txtTel1, this.lblTel2, this.txtTel2, this.lblCel1, this.txtCel1, this.lblCel2, this.txtCel2, lblProvincia, this.txtProvincia, this.lblDireccion, this.txtDireccion, this.lblEmail, this.txtEmail, this.lblNota, this.txtNota, this.lblWeb, this.txtWeb};
                System.Windows.Forms.Control[] controlesVisibles = { };
                System.Windows.Forms.Control[] controlesInvisibles = { this.lblNombre, this.txtNombre, this.lblObligNombre, this.lblCuit, this.txtCuit, this.lblTipo, this.cboTipo, this.lblTel1, this.txtTel1, this.lblTel2, this.txtTel2, this.lblCel1, this.txtCel1, this.lblCel2, this.txtCel2, lblProvincia, this.txtProvincia, this.lblDireccion, this.txtDireccion, this.lblEmail, this.txtEmail, this.lblNota, this.txtNota, this.lblWeb, this.txtWeb, lblError };

                habilitarControles(controlesHabilitados);
                deshabilitarControles(controlesDeshabilitados);
                visibleControles(controlesVisibles);
                invisibleControles(controlesInvisibles);

            }
            else //si existe al menos un proveedor se deja en este otro estado
            {
                System.Windows.Forms.Control[] controlesHabilitados = { this.dgvProveedores, this.btnAgregar, this.btnEditar};
                System.Windows.Forms.Control[] controlesDeshabilitados = { this.btnProcesar, this.lblNombre, this.txtNombre, this.lblObligNombre, this.lblCuit, this.txtCuit, this.lblTipo, this.cboTipo, this.lblTel1, this.txtTel1, this.lblTel2, this.txtTel2, this.lblCel1, this.txtCel1, this.lblCel2, this.txtCel2, lblProvincia, this.txtProvincia, this.lblDireccion, this.txtDireccion, this.lblEmail, this.txtEmail, this.lblNota, this.txtNota, this.lblWeb, this.txtWeb};
                System.Windows.Forms.Control[] controlesVisibles = { };
                System.Windows.Forms.Control[] controlesInvisibles = { this.lblNombre, this.txtNombre, this.lblObligNombre, this.lblCuit, this.txtCuit, this.lblTipo, this.cboTipo, this.lblTel1, this.txtTel1, this.lblTel2, this.txtTel2, this.lblCel1, this.txtCel1, this.lblCel2, this.txtCel2, lblProvincia, this.txtProvincia, this.lblDireccion, this.txtDireccion, this.lblEmail, this.txtEmail, this.lblNota, this.txtNota, this.lblWeb, this.txtWeb, lblError };

                habilitarControles(controlesHabilitados);
                deshabilitarControles(controlesDeshabilitados);
                visibleControles(controlesVisibles);
                invisibleControles(controlesInvisibles);
            }

            errorProvider1.Clear();

            dgvProveedores.Focus();

            estFormulario = "estEsperandoOperacion";

        }



        protected override void estAgregar()
        {

            System.Windows.Forms.Control[] controlesHabilitados = { this.btnAgregar, this.btnProcesar, this.lblNombre, this.txtNombre, this.lblObligNombre, this.lblCuit, this.txtCuit, this.lblTipo, this.cboTipo, this.lblTel1, this.txtTel1, this.lblTel2, this.txtTel2, this.lblCel1, this.txtCel1, this.lblCel2, this.txtCel2, lblProvincia, this.txtProvincia, this.lblDireccion, this.txtDireccion, this.lblEmail, this.txtEmail, this.lblNota, this.txtNota, this.lblWeb, this.txtWeb};
            System.Windows.Forms.Control[] controlesDeshabilitados = { this.dgvProveedores, this.btnEditar, this.btnEliminar };
            System.Windows.Forms.Control[] controlesVisibles = { this.lblNombre, this.txtNombre, this.lblObligNombre, this.lblCuit, this.txtCuit, this.lblTipo, this.cboTipo, this.lblTel1, this.txtTel1, this.lblTel2, this.txtTel2, this.lblCel1, this.txtCel1, this.lblCel2, this.txtCel2, lblProvincia, this.txtProvincia, this.lblDireccion, this.txtDireccion, this.lblEmail, this.txtEmail, this.lblNota, this.txtNota, this.lblWeb, this.txtWeb };
            System.Windows.Forms.Control[] controlesInvisibles = { this.lblError };

            habilitarControles(controlesHabilitados);
            deshabilitarControles(controlesDeshabilitados);
            visibleControles(controlesVisibles);
            invisibleControles(controlesInvisibles);

            estFormulario = "estAgregar";

            this.borrarDatos(); //limpia los txt, para el ingreso de nuevos datos.

            txtNombre.Focus();
        }

        protected override void estEditar()
        {
            System.Windows.Forms.Control[] controlesHabilitados = { this.btnEditar, this.btnProcesar, this.lblNombre, this.lblCuit, this.lblTipo, this.lblTel1, this.txtTel1, this.lblTel2, this.txtTel2, this.lblCel1, this.txtCel1, this.lblCel2, this.txtCel2, lblProvincia, this.txtProvincia, this.lblDireccion, this.txtDireccion, this.lblEmail, this.txtEmail, this.lblNota, this.txtNota, this.lblWeb, this.txtWeb };
            System.Windows.Forms.Control[] controlesDeshabilitados = { this.dgvProveedores, this.btnAgregar, this.btnEliminar, this.txtNombre, this.txtCuit, this.cboTipo};
            System.Windows.Forms.Control[] controlesVisibles = { this.lblNombre, this.txtNombre, this.lblCuit, this.txtCuit, this.lblTipo, this.cboTipo, this.lblTel1, this.txtTel1, this.lblTel2, this.txtTel2, this.lblCel1, this.txtCel1, this.lblCel2, this.txtCel2, lblProvincia, this.txtProvincia, this.lblDireccion, this.txtDireccion, this.lblEmail, this.txtEmail, this.lblNota, this.txtNota, this.lblWeb, this.txtWeb };
            System.Windows.Forms.Control[] controlesInvisibles = { this.lblError, this.lblObligNombre};


            habilitarControles(controlesHabilitados);
            deshabilitarControles(controlesDeshabilitados);
            visibleControles(controlesVisibles);
            invisibleControles(controlesInvisibles);

            estFormulario = "estEditar";

            //CARGAR TXT CON DATOS DE LA FILA ACTUAL.
            cargarTxt();

            txtNombre.Focus();

        }

        //------------METODOS VARIOS------------------
        private void removerControles()   //Eliminar los controles que heredé pero que no los voy a usar.
        {
            this.Controls.Remove(this.btnEliminar);
            this.Controls.Remove(this.lblEliminar);

            
        }

        
    }
}
